chdkfandomcom-20200222-history
Bulgarian/Compiling CHDK under Windows
=Компилиране на CHDK под Windows= За да компилирате CHDK под Windows ще ви трябва Unix среда, като например Cygwin или Mingw/MSys. Освен това се предполага, че притежавате достатъчно умения за работа командната конзола на Windows. Работната среда Съществува 'готова за използване' среда, която можете да изтеглите оттук. Настройки Средата * Създайте папка CHDK. Например D:\CHDK. * Създайте папка за работната среда, например D:\CHDK\gcc. * Разархивирайте пакета със средата в тази папка. * Добавете папката с изпълнимите файлове в променливата на средата PATH. :Отворете 'Start' менюто -> 'Control Panel' -> 'System', страница 'Advanced', бутон 'Environment Variables'. Използвайте User Variables за модифициране на променливата PATH. Ако тази променлива не съществува, създайте я и й присвоете стойност 'D:\CHDK\gcc\bin'. Ако вече съществува променлива PATH, тогава добавете стойността ';D:\CHDK\gcc\bin' (не забравяйте разделителя ';' (точка и запетая). Запазете така направените настройки. :;Забележка: Всички променливи в Windows не са чувствителни към малки и големи букви (case insensitive). Така че, ако имате променлива 'Path' или 'path' или 'pAtH' – модифицирайте тази, която съществува. Не създавайте нова с главни букви! Програмният код * Създайте работна директория, например D:\CHDK\src. * Свалете последната версия на изходния код от SVN хранилището (repository): tools.assembla.com в създадената в предната стъпка директория. :Можете да използвате SVN клиент за Windows или просто да изтеглите кода като ZIP архив директно от tools.assembla.com. :Ако вземете кода като ZIP файл, отворете го и разархивирайте съдържанието му в D:\CHDK\src\. После проверете дали съществува папка 'bin' (т.е. D:\CHDK\src\branches\grand\bin\). Ако я няма, създайте празна на това място. :Ако смятате да участвате в разработката или правите собствена версия, която искате да поддържате актуална, за предпочитане е да ползвате SVN клиент, тъй като той има възможност да разрешава конфликти в кода и да взима/слага промените от/в SVN хранилището. SVN пътят до кода на CHDKе https://tools.assembla.com/svn/chdk. Ако използвате, със следната команда можете да вземете кода от SVN архива: svn checkout https://tools.assembla.com/svn/chdk/trunk chdk Процес на компилация Влезте в коренната директория на изходния код (т.е. D:\CHDK\src\branches\grand\). После пишете: gmake fir По подразбиране, CHDK се компилира само за A610, версия на фирмуера 1.00e. Ако искате да компилирате за друга камера, просто изпълнете 'gmake' с аргументи PLATFORM и PLATFORMSUB. Например: gmake PLATFORM=a620 PLATFORMSUB=100f fir За да ксмпилирате CHDK за всички камери, напишете: gmake batch-zip Известни проблеми и решения за тях Конфликти с продукти на Borland Ако имате компилатори на Borland в променливата PATH, това може да доведе до изпълнение на грешни двоични файлове, които имат същите имена като тези от работната среда на CHDK. Например: >> Entering to platform/a620/sub/100f boot.c -> boot.o stubs_min.S -> stubs_min.o boot.c -> stubs_auto.S stubs_auto.S -> stubs_auto.o -> stubs_entry.S CAUTION! 'stubs_entry.S' is not uptated due to target firmware binary not found! Touch Version 4.2 Copyright © 1998 Borland International ERROR! There are unresolved addresses in 'stubs_entry.S' (a620-100f) for the following names: File stubs_entry.S: free Please, add them into 'stubs_entry_2.S' manually! За да избегнете подобна ситуациа, просто изолирайте продуктите на Borland (т.е. модифицирайте PATH). Недефиниран указател към `sub_...' Внезапно или след обновяване на кода, започва да се появява следното съобщение при компилация: ... -> main.elf ../platform/a610/sub/100e/libplatformsub.a(boot.o): In function `h_usrInit': boot.c:(.text+0x4): undefined reference to `sub_FFC019BC' boot.c:(.text+0x10): undefined reference to `sub_FFEB737C' boot.c:(.text+0x14): undefined reference to `sub_FFEA3A54' ... За да отстраните този проблем, изтрийте файла 'platform/''XXX''/sub/''YYY''/stubs_auto.S' и го издърпайте отново от хранилището на кода. Compiling CHDK under Windows